
$(function(){
    
    $("#btnBuscarProd").click(function(){
        buscarProd();
    });
    $("#txtNombreProdSearch").keypress(function(e){
        if(e.which == 13){
            buscarProd();
        }
    });
    
    $("#txtStockMax").keypress(function(e){
        return solonumeros(e);
    });
    
    $("#btnGrabarProAlm").click(function(){
        
        var filas= jQuery("#grid").jqGrid('getGridParam','selarrrow');
        if(filas!=""){
            if (filas.length > 0) {
                if (filas.length == 1) {
                    var codigoSel=jQuery("#grid").jqGrid('getRowData',filas[0]).codigo;
                    validarProdAlmacen(codigoSel);
                } else {
                    alert("Debe seleccionar sólo un elemento de la lista.");
                }
            } else {
                alert("Debe seleccionar un Producto.");
            }
        }else{
            alert("Debe seleccionar un Producto."); 
        }
        
    }).button();
    
    $("#btnEliminarProAlm").click(function(){
        
        var filas= jQuery("#grid1").jqGrid('getGridParam','selarrrow');
        if (filas.length > 0) {
            if (confirm("¿Esta Seguro de Eliminar?")) {
                for (var i = 0; i < filas.length; i++) {
                    var codigoSel = (jQuery("#grid1").jqGrid('getRowData', filas[i]).codigo);
                    validarEliminar(codigoSel);
                }
            }
        } else {
            alert("Seleccione elemento para eliminar.");
        }
    });

//    $("#cbMax").click(function(){
//        $('#txtStockMax').attr('disabled', !this.checked);
//        
//        if($("#cbMax").is(":checked")){
//            $('#txtStockMax').attr('class','requerido');
//        }else{
//            $('#txtStockMax').removeAttr('class');
//        }
//    });
    
    $("#spPlazo").spinner();
    
    ProveedorAutoCompletar('txtNombreProvAso','hidProvAsoCod');
    
    buscarProd();
    listarAlmacen("lstAlmacen","Seleccione");
    buscar();
});

var validarEliminar = function(codigo){
    var prodAlm = {
        opc:'vdel',
        codigo:codigo
    };
    $.ajax({
        data:prodAlm,
        url:'ajax/ajaxProductoAlmacen.php',
        type:'POST',
        success:function(response){
            if(response != '0'){
                alert(response);
            }else{
                eliminar(codigo);
            }
        }
    });
};

var eliminar = function(codigo){
   var producto = {
           opc:'del',
           codigo:codigo
   };
   $.ajax({
          data:producto,
          url:'ajax/ajaxProductoAlmacen.php',
          type:'POST',
          beforeSend:function(){},
          success:function(response){
            $("#grid1").jqGrid("clearGridData", true);    
            alert(response);
            buscar();
          }
   });
};

var validarProdAlmacen = function(codigo){
    var prodAlm = {
        opc:'vins',
        cod_producto:codigo
    };
    $.ajax({
        data:prodAlm,
        url:'ajax/ajaxProductoAlmacen.php',
        type:'POST',
        success:function(response){
            if(response != '0'){
                alert(response);
            }else{
                grabar(codigo);
            }
        }
    });
};

var grabar = function(codigo){
    if(ValidarRequeridos()){
        var producto = {
            opc:'ins',
            cod_producto:codigo,
            cod_almacen:$("#lstAlmacen").val(),
            stock_max:$("#cbMax").is(":checked")==true ? $("#txtStockMax").val() : null,
            stock_min:$("#txtStockMin").val(),
            cod_proveedor:$("#hidProvAsoCod").val(),
            plazo_abastecimiento:$("#spPlazo").val(),
            estado_max:$("#cbMax").is(":checked")
        };
        $.ajax({
            data:producto,
            url:'ajax/ajaxProductoAlmacen.php',
            type:'POST',
            success:function(response){
                alert(response);
                limpiarProductoAlmacen();
                buscar();
            }
        });
    }
};

var limpiarProductoAlmacen = function(){
    $("#lstAlmacen").val("00");
    $("#txtStockMax").val("");
    $("#txtStockMin").val("");
    $("#txtNombreProvAso").val("");
    $("#hidProvAsoCod").val("");
    $("#spPlazo").val(0);
    
    msgError("","lstAlmacen");
    msgError("","txtStockMax");
    msgError("","txtStockMin");
    msgError("","txtNombreProvAso");
};

var buscar = function() {

    var vcodigo = '';
    var vproducto = '';
    var vcod_almacen = '00';
    var vurli='ajax/ajaxProductoAlmacen.php?opc=bus&nd='+new Date().getTime()+'&codigo='+vcodigo+'&producto='+vproducto+'&cod_almacen='+vcod_almacen;
    
    var producto = {
        opc:"bus",
        codigo: '',
        producto: '',
        cod_almacen:'00'
    };
    $("#grid1").jqGrid("clearGridData", true);
    $("#grid1").jqGrid('setGridParam',{url:vurli,datatype:'json',mtype: 'POST',postData:producto}).trigger('reloadGrid');
    
    jQuery("#grid1").jqGrid({
        url:vurli,
        datatype: "json",
        mtype: 'POST',
        postData:producto,
        colNames: ['Codigo','Codigo Producto','Producto','Codigo Almacen', 'Almacen','Stock Actual','Stock MAX.','Stock MIN.','Codigo Proveedor','Proveedor','Fecha'],
        colModel: [
                    {name: 'codigo',index: 'codigo',width: 25,sorttype:"string",hidden:true},
                    {name: 'cod_producto',index: 'cod_producto',width: 0,sorttype:"string",hidden:true},
                    {name: 'producto',index: 'producto',width: 100,sorttype:"string"},
                    {name: 'cod_almacen',index: 'cod_almacen',width: 0,sorttype:"string",hidden:true},
                    {name: 'almacen',index: 'almacen',width: 60,sorttype:"string"},
                    {name: 'stock_actual',index: 'stock_actual',width: 30,sorttype:"string",hidden:true},
                    {name: 'stock_max',index: 'stock_max',width: 30,sorttype:"string"},
                    {name: 'stock_min',index: 'stock_min',width: 30,sorttype:"string"},
                    {name: 'cod_proveedor',index: 'cod_proveedor',width: 30,sorttype:"string",hidden:true},
                    {name: 'proveedor',index: 'proveedor',width: 30,sorttype:"string",hidden:true},
                    {name: 'fecha_crea',index: 'fecha_crea',width: 40,sorttype:"string"}
                  ],
        rowNum:10,
   	rowList:[10,20,30],
   	pager: '#pager1',
   	sortname: 'id',
        viewrecords: true,
        sortorder: "desc",
        multiselect: true,
        multiSort:false,
        width: "845",
        height: "125",
        caption: "Productos x Almacenes"
    }).navGrid("#pager1", {
        edit: false,
        add: false,
        search: false,
        del: false
    });
};

var buscarProd = function() {

    var vcod_alterno = '';
    var vnombre = $("#txtNombreProdSearch").val();
    var vurli='ajax/ajaxProducto.php?opc=bus&nd='+new Date().getTime()+'&codigo_alterno='+vcod_alterno+'&nombre='+vnombre;
    
    var producto = {
        opc:"bus",
        codigo_alterno: '',
        nombre: $("#txtNombreProdSearch").val()
    };
    $("#grid").jqGrid("clearGridData", true);
    $("#grid").jqGrid('setGridParam',{url:vurli,datatype:'json',mtype: 'POST',postData:producto}).trigger('reloadGrid');
    
    jQuery("#grid").jqGrid({
        url:vurli,
        datatype: "json",
        mtype: 'POST',
        postData:producto,
        colNames: ['Codigo','Codigo Alterno', 'Nombre','Cod_unidad','Unidad Medida','cod_tipo','Tipo'],
        colModel: [
                    {name: 'codigo',index: 'codigo',width: 25,sorttype:"string"},
                    {name: 'codigo_alterno',index: 'codigo_alterno',width: 100,sorttype:"string",hidden:true},
                    {name: 'nombre',index: 'codigo',width: 100,sorttype:"string"},
                    {name: 'cod_unidad',index: 'codigo',width: 100,sorttype:"string",hidden:true},
                    {name: 'unidad_medida',index: 'codigo',width: 100,sorttype:"string",hidden:true},
                    {name: 'tipo',index: 'codigo',width: 100,sorttype:"string",hidden:true},
                    {name: 'descrip_tipo',index: 'codigo',width: 100,sorttype:"string",hidden:true}
                  ],
        rowNum:10,
   	rowList:[10,20,30],
   	pager: '#pager',
   	sortname: 'id',
        viewrecords: true,
        sortorder: "desc",
        multiselect: true,
        multiSort:false,
        width: "400",
        height: "200",
        caption: "Seleccionar Producto"
    }).navGrid("#pager", {
        edit: false,
        add: false,
        search: false,
        del: false
    });
};

jQuery.extend(jQuery.jgrid.edit, {
    ajaxEditOptions: { contentType: "application/json" },
    recreateForm: true,
    serializeEditData: function (postData) {
        return JSON.stringify(postData);
    }
});

jQuery.extend(jQuery.jgrid.del, {
    ajaxDelOptions: { contentType: "application/json" },
    serializeDelData: function (postData) {
        return JSON.stringify(postData);
    }
});